home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 06 (1982-02)(Softdisk)(Side B).do / S.A.M..bas < prev    next >
BASIC Source File  |  1996-12-24  |  8KB  |  140 lines

  1. 1000  REM   GERALD GONDERINGER
  2. 1010  REM   ATKINSON NEBR 68713
  3. 1020  REM   COPYRIGHT 1980
  4. 1030  REM    
  5. 1040  REM 
  6. 1050  POKE 232,168: POKE 233,97: POKE 25000,8: POKE 25001,0: POKE 25002,50: POKE 25003,0: POKE 25004,77: POKE 25005,0: POKE 25006,100: POKE 25007,0
  7. 1060  GOSUB 1940: GOSUB 2090
  8. 1070  GOSUB 2120
  9. 1080 FI = 4: REM   NUMBER OF FIGHT            ERS    
  10. 1090 SHIELD = 50:SC = 0: HGR 
  11. 1100  HPLOT 140,152 TO 140,160
  12. 1110  ROT= 0: SCALE= 2:VX = 140:VY = 160: XDRAW 3 AT VX,VY
  13. 1120  GOSUB 2090
  14. 1130  HOME 
  15. 1140  INVERSE : VTAB 21: PRINT " SHIELD  RANGE   ANGLE  ELEVATION  HITS": NORMAL 
  16. 1150  FOR GEG = 1 TO 100:G =  RND(1) *279:E =  RND(1) *160: HPLOT G,E: NEXT 
  17. 1160  FOR X = 1 TO FI:D = 0
  18. 1170 FA(X) = ( RND(1) *180) +90
  19. 1180 FA(X) = FA(X) -90: IF FA(X) <0  THEN FA(X) = 360 +FA(X)
  20. 1190 F(X) =  RND(1) *260 +5:G(X) = 5:FO(X) = F(X):GO(X) = G(X)
  21. 1200  SCALE= 2: XDRAW 1 AT F(X),G(X): NEXT 
  22. 1210 X1 = 140:Y1 = 160:R = 57.2957795:M = 127:D1 = 10:D2 = 25:D3 = 5.625:D4 = 4.711
  23. 1220 AN =  PDL(0):AN =  INT(AN -M): IF  ABS(AN) <20  THEN AN = 0
  24. 1230 AC = AN/D1:AA =  INT(AA +AC):NA = AA +270
  25. 1240  IF NA <180  THEN NA = 180:AA =  -90
  26. 1250  IF NA >360  THEN NA = 360:AA = 90
  27. 1260  IF AA >90  THEN AA = 90
  28. 1270 EL =  PDL(1):EL =  INT(EL -M): IF  ABS(EL) <20  THEN EL = 0
  29. 1280 EL = EL/D2:EC = EC -EL: IF EC >45  THEN RA = (45 +(45 -EC)) *D4: GOTO 1300
  30. 1290 RA = EC *D4
  31. 1300 X2 =  COS(NA/R) *RA:Y2 =  SIN(NA/R) *RA:X3 = X1 +X2:Y3 = Y1 +Y2
  32. 1310  IF RA <0  THEN RA = 0
  33. 1320  IF RA >212  THEN RA = 212
  34. 1330  IF X3 <0  THEN X3 = 0
  35. 1340  IF Y3 <0  THEN Y3 = 0
  36. 1350  IF X3 >279  THEN X3 = 279
  37. 1360  IF Y3 >160  THEN Y3 = 160
  38. 1370  VTAB 23: HTAB 5: PRINT SHIELD;"  ";: HTAB 11: PRINT  INT(RA);"  ";: HTAB 18: PRINT AA;"  ";: HTAB 28: PRINT  INT(EC);"  ";: HTAB 37: PRINT SC
  39. 1380  IF SHIELD <0  THEN  GOTO 2260
  40. 1390  SCALE= 2: XDRAW 3 AT VX,VY
  41. 1400  XDRAW 3 AT X3,Y3:
  42. 1410 VX = X3:VY = Y3
  43. 1420  IF  PEEK( -16287) >127  THEN 1630
  44. 1430  IF  PEEK( -16286) >127  THEN 1630
  45. 1440  REM  MOVING ENEMY
  46. 1450  IF D = 0  THEN 1520: REM  NONE DESTROYED
  47. 1460 FA(D) = ( RND(1) *180) +90: REM            ANGLE OF MOVE,EMT
  48. 1470 FA(D) = FA(D) -90: IF FA(D) <0  THEN FA(D) = 360 +FA(D)
  49. 1480 FO(D) = ( RND(1) *250) +8:GO(D) = 5
  50. 1490 F(D) = FO(D):G(D) = GO(D)
  51. 1500  XDRAW 1 AT FO(D),GO(D)
  52. 1510 GEG = D:D = 0
  53. 1520  FOR X = 1 TO FI: SCALE= 2
  54. 1525  IF FO(X) = 0  THEN D = X: GOTO 1600
  55. 1530  XDRAW 1 AT FO(X),GO(X)
  56. 1540 IX =  COS(FA(X)/R) *4
  57. 1550 IY =  SIN(FA(X)/R) *4:
  58. 1560 F(X) = F(X) +IX:G(X) = G(X) +IY:FO(X) = F(X):GO(X) = G(X)
  59. 1570  IF F(X) <5  OR F(X) >275  THEN F(X) = 0:G(X) = 0:D = X:FO(X) = 0:GO(X) = 0: GOTO 1600
  60. 1580  IF G(X) >160  THEN SHIELD = SHIELD -10: GOSUB 2110:D = X: GOTO 1600
  61. 1590  XDRAW 1 AT F(X),G(X):
  62. 1600  NEXT 
  63. 1610  POKE 768,95: POKE 769,7: CALL 770
  64. 1620  GOTO 1220
  65. 1630  IF  PEEK( -16287) <127  AND  PEEK( -16286) <127  THEN 1440
  66. 1640  IF  PEEK( -16287) >127  THEN SHIELD = SHIELD -1:U = 1
  67. 1650  IF  PEEK( -16286) >127  THEN SHIELD = SHIELD -3:U = 3
  68. 1660 RO = AA/5.625: IF RO <0  THEN RO = 256 +RO:
  69. 1670 A2 =  COS(NA/R) *RA/5:B2 =  SIN(NA/R) *RA/5:A3 = X1 +A2:B3 = B2 +Y1
  70. 1675  IF A3 <0  THEN A3 = 0
  71. 1676  IF B3 <0  THEN B3 = 0
  72. 1677  IF A3 >279  THEN A3 = 279
  73. 1680  ROT= RO: SCALE= 2
  74. 1690  FOR GEG = 1 TO 5: XDRAW 2 AT A3,B3:A1 = A3:B1 = B3
  75. 1700 A3 = A1 +A2:B3 = B1 +B2: IF A3 >279  THEN A3 = 279
  76. 1710  IF B3 <0  THEN B3 = 0
  77. 1720  FOR K = 1 TO 2:J = 200:I = 25: POKE 768,J: POKE 769,I: CALL 770:J = 250: POKE 768,J: POKE 769,I: CALL 770: NEXT 
  78. 1730  XDRAW 2 AT A1,B1: NEXT : ROT= 0
  79. 1740  FOR K = 1 TO 2:J = 50:I = 250: POKE 768,I: POKE 769,J: CALL 770: NEXT K:
  80. 1750  POKE  -16287,0: POKE  -16286,0:W = 0
  81. 1760  FOR X = 1 TO 4
  82. 1770  IF  ABS(G(X) -Y3) <5 *U  THEN 1790
  83. 1780  NEXT X: GOTO 1800
  84. 1790 W = W +1:C(W) = X: GOTO 1780
  85. 1800  FOR X = 1 TO W
  86. 1810  IF  ABS(F(C(X)) -X3) <3 *U  THEN DESTROYED = C(X)
  87. 1820  NEXT X
  88. 1830  IF DESTROYED < >0  THEN  GOSUB 1850
  89. 1840  GOTO 1440
  90. 1850  REM  ENEMY IS HIT
  91. 1860  XDRAW 1 AT F(DE),G(DE)
  92. 1870  SCALE= 4: XDRAW 3 AT F(DE),G(DE)
  93. 1880  FOR G = 1 TO 5:I = 60:J = 10: POKE 768,I: POKE 769,J: CALL 770:I = 90: POKE 768,I: POKE 769,J: CALL 770: NEXT G:
  94. 1890  XDRAW 3 AT F(DE),G(DE): SCALE= 2
  95. 1900 F(DE) = 0:G(DE) = 0:
  96. 1910 SC = SC +1:D = DE:DE = 0
  97. 1920  RETURN 
  98. 1930  GOTO 1220
  99. 1940  POKE 25050,56: POKE 25051,62: POKE 25052,39: POKE 25053,36: POKE 25054,55: POKE 25055,54: POKE 25056,54: POKE 25057,46: POKE 25058,36:
  100. 1950  POKE 25059,76: POKE 25060,46: POKE 25061,37: POKE 25062,45: POKE 25063,54: POKE 25064,46: POKE 25065,36: POKE 25066,36: POKE 25067,36:
  101. 1960  POKE 25068,55: POKE 25069,246: POKE 25070,35: POKE 25071,7: POKE 25072,0:
  102. 1970  POKE 25100,32: POKE 25101,164: POKE 25102,146: POKE 25103,59: POKE 25104,127: POKE 25105,73: POKE 25106,50: POKE 25107,54: POKE 25108,8:
  103. 1980  POKE 25109,24: POKE 25110,8: POKE 25111,40: POKE 25112,45: POKE 25113,0:
  104. 1990  POKE 25073,1: POKE 25074,0: POKE 25075,4: POKE 25076,0: POKE 25077,54: POKE 25078,62: POKE 25079,54: POKE 25080,54: POKE 25081,54:
  105. 2000  POKE 25082,62: POKE 25083,46: POKE 25084,45: POKE 25085,37: POKE 25086,39: POKE 25087,36: POKE 25088,36: POKE 25089,36: POKE 25090,7:
  106. 2010  POKE 25091,0:
  107. 2020  RETURN 
  108. 2030  FOR K = 1 TO 8: FOR G = 1 TO 4: IF G <2  THEN I = 75:
  109. 2040  IF G >2  THEN I = 149
  110. 2050 J = 8: POKE 768,I: POKE 769,J: CALL 770: NEXT G: NEXT K: RETURN 
  111. 2060  FOR K = 1 TO 2:J = 25:I = 70: POKE 768,I: POKE 769,J: CALL 770: NEXT K: RETURN 
  112. 2070 J = 15:I = 50: FOR K = 1 TO 30: POKE 768,I: POKE 769,J: CALL 770: NEXT K: RETURN 
  113. 2080  FOR G = 1 TO 5:I = 120:J = 75: POKE 768,I: POKE 769,J: CALL 770:I = 140: POKE 768,I: POKE 769,J: CALL 770: NEXT G: RETURN 
  114. 2090  POKE 770,173: POKE 771,48: POKE 772,192: POKE 773,136: POKE 774,208: POKE 775,5: POKE 776,206: POKE 777,1: POKE 778,3
  115. 2100  POKE 779,240: POKE 780,9: POKE 781,202: POKE 782,208: POKE 783,245: POKE 784,174: POKE 785,0: POKE 786,3: POKE 787,76: POKE 788,2: POKE 789,3: POKE 790,96: POKE 791,0: POKE 792,0: RETURN 
  116. 2110  FOR G = 1 TO 5:I = 60:J = 10: POKE 768,I: POKE 769,J: CALL 770:I = 90: POKE 768,I: POKE 769,J: CALL 770: NEXT G: RETURN 
  117. 2120  TEXT : HOME : VTAB 10: PRINT "***************************************                                                                                    SURFACE TO AIR MISSLE DEFENSE"
  118. 2130  PRINT 
  119. 2140  PRINT "                                        ***************************************"
  120. 2150  GOSUB 2070
  121. 2160  VTAB 21: PRINT "        GERALD GONDERINGER "
  122. 2165  HTAB 11: PRINT "COPYRIGHT 1980"
  123. 2170  FOR GEG = 1 TO 2000: NEXT 
  124. 2180  HOME 
  125. 2190  PRINT "YOU ARE IN CHARGE OF A SURFACE TO AIR   MISSLE BATTERY.  IT IS YOUR JOB TO      PREVENT THE FIGHTERS FROM REACHING THE  BOTTOM OF THE SCREEN."
  126. 2220  PRINT :
  127. 2230  PRINT "PADDLE 0 CONTROLS THE ANGLE OF          ELEVATION. PADDLE 1 CONTROLS THE ANGLE  OF FIRING.  THE BUTTON ON PADDLE 0      FIRES A SMALL MISSLE WITH LIMITED RANGE"
  128. 2240  PRINT "OF IMPACT.  THE BUTTON ON PADDLE FIRES  A MISSLE WITH GREATER RANGE OF IMPACT   BUT IT SUBTRACTS MORE FROM YOUR SHIELD"
  129. 2250  INPUT "  ";AN$: RETURN 
  130. 2260  REM  ENDING OF GAME
  131. 2270  HOME : TEXT :
  132. 2280  VTAB 10: HTAB 5: PRINT "COMMANDER...."
  133. 2290  PRINT : PRINT "YOUR SHIELD DEFENSES ON YOUR S.A.M.     HAVE BEEN DESTROYED. "
  134. 2300 HITS = SC
  135. 2310  PRINT : PRINT "YOU HAVE DESTROYED ";HITS;" ENEMY FIGHTERS."
  136. 2320  IF HITS <5  THEN  PRINT "THIS IS AWFUL. THE COMPUTER THINKS YOU  ARE A SPY WORKING FOR THE KLINGON-DEATH STAR FEDERATION.": GOTO 2360
  137. 2330  IF HITS <10  THEN  PRINT "THIS IS OKAY BUT YOU ARE NOT AN ACE     DEFENDER. THE FIGHTERS INFLICTED MUCH   DAMAGE.": GOTO 2360
  138. 2340  IF HITS <15  THEN  PRINT "THIS IS PRETTY GOOD. YOU HAVE BEEN      AWARDED A MEDAL OF HONOR.": GOTO 2360
  139. 2350  IF HITS > = 15  THEN  PRINT "THIS IS TREMENDOUS.  YOU ARE A NATIONAL HERO": GOTO 2360
  140. 2360  VTAB 23: PRINT "DO YOU WANT TO PLAY AGAIN???";: GET AN$: IF  MID$ (AN$,1,1) < >"N"  THEN  GOTO 1090